import time, functools

def metric(fn):
    @functools.wraps(fn)
    def timer(*args, **kw):
        start_time = time.time()
        fn(*args, **kw)
        end_time = time.time()
        print('function:{}耗时：{:.4f}s'.format(fn.__name__, end_time - start_time))
        # print('%s executed in %s ms' % (fn.__name__, 10.24))
        return fn(*args, **kw)
    return timer
# 测试
@metric
def fast(x, y):
    time.sleep(0.0012)
    return x + y;

@metric
def slow(x, y, z):
    time.sleep(0.1234)
    return x * y * z;

f = fast(11, 22)
s = slow(11, 22, 33)
print("运算结果为f={},s={}".format(f,s))
if f != 33:
    print('测试失败!')
elif s != 7986:
    print('测试失败!')
